﻿using Mes.Domain.BoundedContext;
using Mes.Application.DTO.Inputs.MasterData;
using Mes.Application.DTO.Results.MasterData;

namespace Mes.Application.Services.MasterData
{
    public interface IMeasuringUnitService
    {
        /// <summary>
        /// 添加计量单位
        /// </summary>
        /// <param name="measuringUnitInput"></param>
        /// <returns></returns>
        Task AddMeasuringUnitAsync(MeasuringUnitInput measuringUnitInput);

        /// <summary>
        /// 修改计量单位
        /// </summary>
        /// <param name="measuringUnitUpdateInput"></param>
        /// <returns></returns>
        Task UpdateMeasuringUnitAsync(MeasuringUnitUpdateInput measuringUnitUpdateInput);

        /// <summary>
        /// 删除计量单位
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task DeleteMeasuringUnitAsync(int[] ids);

        /// <summary>
        /// 根据主键编号查询计量单位
        /// </summary>
        /// <param name="id"></param>
        /// <returns>MeasuringUnitResult</returns>
        Task<MeasuringUnitResult> GetMeasuringUnitAsync(int id);

        /// <summary>
        /// 分页查询计量单位
        /// </summary>
        /// <param name="measuringUnitPageInput"></param>
        /// <returns>PagedItemsData<MeasuringUnitResult></returns>
        Task<PagedItemsData<MeasuringUnitResult>> GetMeasuringUnitsAsync(MeasuringUnitPageInput measuringUnitPageInput);
    }
}
